const execa = require('execa');

// 1. 获取packages下所有的目录名
const { targets } = require('./utils');

// 2. 开始进行打包
run();

function run() {
    buildAll(targets);
}


/**
 * 开始进行打包
 * @param {*} targets 
 */
function buildAll(targets) {
    runParallel(targets, build);
}


async function runParallel(target, interatorFn) {
    const ret = [];
    for (let item of target) {
        const p = Promise.resolve().then(() => interatorFn(item));
        ret.push(p);
    }
    // 等待全部打包完才返回
    return await Promise.all(ret);
}

async function build(target) {
    // 开始调用rollup进行打包
    await execa('rollup', ['-c', '--environment', [`TARGET:${target}`]],  {
        // 与父进程共享
        stdio: 'inherit'
      })
}